export interface BasicPageParams {
  page: number;
  pageSize: number;
}

export interface BasicFetchResult<T> {
  items: T[];
  total: number;
}

/**
 * 数据结果
 * */
export interface Page<T> {
  /**当前页码*/
  current?: number;
  pageNum?: number;
  pageIndex?: number;

  /**每页显示条数*/
  size?: number;
  pageSize?: number;

  /**总页数*/
  total?: number;

  /**返回数据*/
  records?: T[];
  /**兼容数据结构*/
  list?: T[];
}

/**
 * 数据结果
 * */
export interface Query<T> extends Page<T> {
  /**查询参数*/
  data?: T;
}

/**
 * 数据基础类
 * */
export interface Model {
  /**是否有效*/
  stateId?: number;
  /**创建人*/
  createdBy?: string;
  /**创建时间*/
  createdDate?: string;
  /**最后修改人*/
  lastModifiedBy?: string;
  /**最后修改时间*/
  lastModifiedDate?: string;
  /**乐观锁*/
  versionLock?: number;
  /**逻辑删除时间*/
  deletedTimeLong?: number;
}

/**
 * 数据结果
 * */
export interface Result<T extends Model> {
  /**状态码*/
  code: number | string;
  /**提示语*/
  message: string;
  /**返回数据*/
  data: T;
}
